Serial data links are commonly used in various applications. In some such applications, long runs of consecutive identical digits may hamper clock recovery in a serial receiver, and significant DC imbalance may degrade the performance of analog front end circuits in the receiver. Coding schemes such as 8b/10b or 64b/66b may be used to limit the length of runs of consecutive identical digits and they may, depending on the characteristics of the data being transmitted, tend to reduce DC imbalance, but they add overhead in the form of extra bits. Scrambler based line codes may be used to avoid overhead and, again depending on the characteristics of the data being transmitted, they may improve the DC balance, and generally reduce the lengths of runs of consecutive identical digits, but in principle they may generate output with poor DC balance and unbounded runs of consecutive identical digits.
Thus, there is a need for an improved system and method for line coding.